package com.lance.answer.gui.answer.gk.answer.lms.batch.task;

import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.google.common.base.Strings;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
import com.lance.answer.dto.CompleteInfo;
import com.lance.answer.gui.answer.Util;
import com.lance.answer.gui.answer.gk.answer.lms.batch.dto.LmsWatchDTO;
import com.lance.answer.gui.answer.gk.answer.lms.util.LmsUtil;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.LinkedBlockingDeque;
import java.util.concurrent.TimeUnit;


@Slf4j
public class BatchDoSheHuiShiJianTask extends Thread {


    public static ExecutorService pool = Executors.newSingleThreadExecutor();

    private final String driverPath;
    private final LinkedBlockingDeque<LmsWatchDTO> watchDTOS;

    public BatchDoSheHuiShiJianTask(String driverPath, LinkedBlockingDeque<LmsWatchDTO> watchDTOS) {
        this.driverPath = driverPath;
        this.watchDTOS = watchDTOS;
    }

    @SneakyThrows
    @Override
    public void run() {

        while (watchDTOS.size() > 0) {
            LmsWatchDTO lmsWatchDTO = watchDTOS.take();
            String userName = lmsWatchDTO.getUsername();
            String password = lmsWatchDTO.getPassword();
            log.info("任务：{} 剩余 {} 行 用户名：{} 密码：{}",
                    Thread.currentThread().getName(), watchDTOS.size(), userName, password);
            run(driverPath, lmsWatchDTO);
        }

        if (watchDTOS.size() == 0) {
            log.info("课程所有用户均已执行完毕，系统将在20min后结束");
            TimeUnit.MINUTES.sleep(20);
            return;
        }
    }


    // 完型填空类型
    public static final String CLOZE = "subject ng-scope cloze";

    public static void run(String driverPath, LmsWatchDTO lmsWatchDTO) throws Exception {

        Map<String, Set<String>> urlMap = Maps.newHashMap();
        urlMap.put("习近平新时代中国特色社会主义思想", Sets.newHashSet("https://lms.ouchn.cn/course/10000001761/learning-activity/full-screen#/10000212963"));
        urlMap.put("中国近现代史纲要", Sets.newHashSet("https://lms.ouchn.cn/course/10000001767/learning-activity/full-screen#/10000213696"));
        //    urlMap.put("习近平总书记教育重要论述研究",Sets.newHashSet(""));
        urlMap.put("毛泽东思想和中国特色社会主义理论体系概论", Sets.newHashSet("https://lms.ouchn.cn/course/10000001766/learning-activity/full-screen#/10000213342"));
        urlMap.put("思想道德与法治", Sets.newHashSet("https://lms.ouchn.cn/course/10000001769/learning-activity/full-screen#/10000213896"));
        urlMap.put("马克思主义基本原理", Sets.newHashSet("https://lms.ouchn.cn/course/10000001772/learning-activity/full-screen#/10000228312"));
        urlMap.put("政治经济学", Sets.newHashSet("https://lms.ouchn.cn/course/10000001741/learning-activity/full-screen#/10000208266","https://lms.ouchn.cn/course/10000001741/learning-activity/full-screen#/10000208267"));



        String userName = lmsWatchDTO.getUsername();
        String pwd = lmsWatchDTO.getPassword();
        String courseName = lmsWatchDTO.getCourseName();

        Set<String> urlTasks = urlMap.get(courseName);


        String completeInfoFilePath = "libs//lmsAnswerInfo//" + courseName + "//" + userName + "-practice.txt";
        File completeInfoFile = new File(completeInfoFilePath);

        boolean isStartChrome = false;

        Set<String> hasCompleteTasks = Sets.newHashSet();
        if (completeInfoFile.exists()) {

            InputStream completeInfoStream = new FileInputStream(completeInfoFile);
            String completeInfoStr = IOUtils.toString(completeInfoStream, "UTF-8");
            List<CompleteInfo> completeInfoList;
            try {
                completeInfoList = JSONObject.parseArray(completeInfoStr, CompleteInfo.class);
                for(CompleteInfo completeInfo:completeInfoList){
                    if(completeInfo.isComplete()){
                        hasCompleteTasks.add(completeInfo.getHomeworkUrl());
                    }
                }
            } catch (Exception e) {
            }

        }

        for(String urlTask:urlTasks){
            if(!hasCompleteTasks.contains(urlTask)){
                isStartChrome = true;
                break;
            }
        }


        if (!isStartChrome) {
            return;
        }


        ChromeDriver driver = Util.getDriver(driverPath);
        try {
            String url = "https://menhu.pt.ouchn.cn/site/ouchnPc/index";
            driver.get(url);
            Thread.sleep(3000);


            //  pool.submit(() -> LmsUtil.login(driver, userName, pwd));
            LmsUtil.login(driver, userName, pwd);

            TimeUnit.SECONDS.sleep(5);

            // 要求分数 FIXME 每个课程要求的分数不一样

            log.info("开始答题.........{}", courseName);
            study(driver, userName, courseName,urlTasks,hasCompleteTasks);

        } catch (Exception e) {

        } finally {
            try {
                driver.close();
                Util.switchToFirst(driver);
                driver.quit();
            } catch (Exception e1) {

            }
        }
    }


    private static void study(WebDriver driver, String userName, String subjectName,Set<String> urlTasks , Set<String> hasCompleteTasks ) throws Exception {

        Map<String, String> answers = Maps.newHashMap();
        answers.put("习近平新时代中国特色社会主义思想", "课程旨在帮助大学生深入学习领会习近平新时代中国特色社会主义思想的核心要义、精神实质、丰富内涵、实践要求。不仅在教学内容上设置了“习声回响”“习语重温”等模块，引导青年学生原原本本读原著、学原文、悟原理，而且在教学形式上综合运用课堂讲授、小组研讨、实践教学等，引导青年学生全面系统学、深入思考学、联系实际学，真正做到学深悟透、融会贯通、真信笃行。尤其在实践教学环节将为学生营造理论联系实际的优质学习场域，鼓励学生通过亲眼看、亲耳听、亲身悟，激发学习新思想、践行新理念的内生动力，从而进一步增强“四个意识”、坚定“四个自信”、做到“两个维护”。\n" +
                "近平新时代中国特色社会主义思想，是引领中国、影响世界的当代中国马克思主义、21世纪马克思主义，是新时代中国共产党的思想旗帜和精神旗帜。经党中央批准，《习近平谈治国理政》第三卷已经面向海内外出版发行。这部重要著作生动记录了党的十九大以来以习近平同志为核心的党中央，团结带领全党全国人民立足“两个大局”、推进“两个革命”、全面建成小康社会的伟大实践，生动展示了马克思主义中国化的最新成果。《习近平谈治国理政》第三卷连同第一、二卷，集中反映了党的创新理论的科学体系、发展脉络、主要内容，是学习习近平新时代中国特色社会主义思想最权威、最系统、最鲜活的原著原典。\n" +
                "研读这部重要著作，体悟习近平总书记治国理政的理论和实践，感受深切的是贯穿其中的马克思主义立场观点方法，蕴含其中的精髓要义、思想风范，最为鲜明的是人民至上、崇高信仰、历史自觉、问题导向、斗争精神、天下情怀。这几个方面贯通以习近平同志为核心的党中央推进管党治党、治国理政、大国外交的全过程，贯通党的十八大以来理论创新、实践创新、制度创新的各方面，是新时代中国共产党人理论创造、实践探索、政治品格的集中体现。\n" +
                "人民至上，就是坚持以人民为中心，依靠人民开创历史伟业，带领人民创造美好生活。习近平总书记是从人民中走出来的、对人民怀有真挚感情和强烈责任感的人民领袖，无论是在基层、地方工作，还是在中央工作，都始终把人民挂在心头、念在心里。研读《习近平谈治国理政》，深刻体会到“人民”二字在习近平新时代中国特色社会主义思想中具有基础性、根本性的地位和作用，人民至上是理论基点、价值支点、实践原点，也是治国理政的出发点、落脚点。从这个意义上，这一思想的实质就是“人民至上论”“人民幸福论”。\n" +
                "把一切为了人民作为执政兴邦的根本价值取向。党的十九大以来，习近平总书记把“不忘初心、牢记使命” 作为中国共产党人的永恒课题和终身课题，强调“我们党来自于人民，为人民而生，因人民而兴”；“以百姓心为心，与人民同呼吸、共命运、心连心，是党的初心，也是党的恒心”；“我们的目标很宏伟，但也很朴素，归根结底就是让全体中国人都过上更好的日子”。无论是打赢脱贫攻坚战，还是解决人民最关心最直接最现实的利益问题，无论是推进健康中国、平安中国、美丽中国建设，还是坚持“人民至上、生命至上”打赢疫情防控阻击战，习近平总书记都对人民利益尽心尽责，对百姓冷暖念兹在兹，彰显着“我将无我、不负人民”的使命担当，与人民心心相印、同甘共苦的真挚情怀。\n" +
                "把一切依靠人民作为创造历史伟业的根本动力源泉。我们党在革命建设改革时期取得的伟大成就，当代中国经济快速发展、社会长期稳定的“两大奇迹”，归根结底都是人民创造的。习近平总书记始终把人民放在心中最高位置，鲜明指出“人民是历史的创造者，人民是真正的英雄”；“人民是我们党执政的最大底气，是我们共和国的坚实根基”；民心是最大的政治，必须贯彻群众路线，始终保持同人民群众的血肉联系。在新时代的奋斗进程中，我国全面建成小康社会能够取得决定性进展，面对国内外各种风险挑战能够成功应对，疫情防控斗争能够取得重大战略成果，就是因为我们党真心尊崇人民、真诚相信人民、真正依靠人民，凝聚起澎湃向前、不可战胜的磅礴力量。\n" +
                "崇高信仰，就是心有所信、行有所向，矢志不移为理想信念而奋斗。理想信念是一个政党的政治灵魂、一个国家的精神支柱，是激励人们矢志奋斗的不竭动力。研读《习近平谈治国理政》，深切感到对马克思主义的信仰，对社会主义、共产主义的信念，构成了习近平新时代中国特色社会主义思想的鲜明标识和政治底色，这一思想通篇闪耀着理想的光芒、真理的力量，彰显着新时代中国共产党人的崇高追求和远大抱负。\n" +
                "这种矢志不渝的崇高信仰，体现在对马克思主义的笃信坚守，坚定不移把马克思主义中国化推向前进。马克思主义是我们立党立国的根本指导思想，是指引中国穿破黑暗、迎来光明、创造辉煌的指路明灯。2018年，我们党隆重纪念马克思诞辰200周年、《共产党宣言》发表170周年，习近平总书记专门发表重要讲话，宣示中国共产党人对马克思主义科学真理的信仰信念，展现党和人民志不改、道不变的意志决心。坚守本原才能信之弥坚，发展创新才能行稳致远。体悟习近平总书记的理论创造，不仅感受到真理在手、大道在我的浩然正气，而且感受到挺立潮头、引领时代的蓬勃朝气；不仅感受到对马克思主义的洞察和升华，也感受到理论与实践在当代中国的相互激荡。这正是习近平新时代中国特色社会主义思想富有理论定力、实践伟力、时代魅力的根源所在。\n" +
                "这种矢志不渝的崇高信仰，体现在对方向道路的一以贯之，坚定不移把中国特色社会主义伟大事业推向前进。革命理想高于天。对共产主义、社会主义理想的高扬和坚守，是贯穿党的创新理论的一条红线。在党的十九大后新进两委和省部级主要领导干部专题研讨班上，习近平总书记鲜明指出，坚持和发展中国特色社会主义要一以贯之，勇于把伟大社会革命继续推进下去。几年来，我们党紧紧围绕推动新时代中国特色社会主义展现新气象，着力坚持和加强党的全面领导，深化党和国家机构改革，完善和发展我国国家制度和治理体系，开启了改革开放再出发新征程，打开了经济高质量发展新局面。中国特色社会主义彰显出更加强大、更有说服力的真理力量，中国人民的“四个自信”更加笃定昂扬。\n" +
                "历史自觉，就是深刻洞察“两个大局”，牢牢掌握当代中国发展的历史主动性。人类社会的发展进程，是不断认识把握历史规律，从必然王国向自由王国迈进的过程。习近平总书记一贯重视学习和总结历史，重视借鉴和运用历史经验，自觉在历史潮流中认清方位、明确方向、把握主动。研读《习近平谈治国理政》，深切感到这一思想始终站在历史活动实践主体的高度，汲取中华五千多年文明赋予的深沉历史积淀和历史智慧，蕴含着对强党之路、强国之路、复兴之路的深刻认知，彰显着深邃的历史观照、深厚的历史情怀、强烈的历史担当。\n" +
                "这是胸怀中华民族伟大复兴战略全局和世界百年未有之大变局的高度自觉。中华民族伟大复兴的中国梦，是党的创新理论中具有引领作用、标志性意义的重大命题。这一命题深入洞察中华民族的历史命运及其背后的历史规律，深刻阐明当今时代中国共产党和中国人民的历史使命，彰显了我们党传承中华文明、投身民族复兴的责任担当，找到了中华民族团结奋斗的最大公约数和最大同心圆。这几年，国际国内形势深入演变，习近平总书记高瞻远瞩、深谋远虑，鲜明指出要胸怀“两个大局”，将其作为“谋划工作的基本出发点”，进一步揭示了我们所处的历史方位、所经历的历史进程。在“两个大局”交织奔涌的历史洪流中，只要坚定目标信心、科学识变应变，就一定能抓住历史机遇、实现历史跃升。\n" +
                "这是勇于自我革命、以百年风华正茂引领千秋伟业的高度自觉。这些年，习近平总书记的足迹踏遍革命故地、红色热土，反复叮嘱我们走得再远都不能忘记来时的路，不能忘记为什么出发，必须始终牢记初心使命、传承红色基因、弘扬革命精神，以党的自我革命推动伟大社会革命。一言一行、一举一动，向全党全国人民鲜明昭示了中国共产党是从光荣历史中走来的党，更是自觉担当历史责任、矢志完成历史使命的党。可以说，以铁的意志、铁的纪律推进党的革命性锻造，持续革新国家的面貌、社会的面貌，是对9100多万党员、14亿中国人民的责任，也是对无数革命先辈、民族先驱、古圣先贤的历史交代。正因为坚持这样的自觉和担当，我们推进“两个革命”的意志不可动摇，步伐永不停歇。\n" +
                "问题导向，就是坚持实事求是、真抓实干，在直面矛盾、破解难题中砥砺前行。问题是时代的声音，是事业发展的磨刀石。新时代的开创、新思想的产生，本身就是在扎根现实土壤、回应实践需求、回答时代课题中实现的。研读《习近平谈治国理政》，深切感到一切从实际出发、一切由实践检验的科学态度，善于抓住事物主要矛盾和矛盾主要方面的科学方法，感到强烈的问题意识、鲜明的问题导向，为我们坚持党的实事求是的思想路线、迎难而上破解问题树立了光辉典范。\n" +
                "问题导向体现为求真务实、实践第一的科学精神。习近平总书记指出，“一种理论的产生，源泉只能是丰富生动的现实生活，动力只能是解决社会矛盾和问题的现实要求”。无论是提出我国社会主要矛盾发生变化的重大论断，还是作出适应经济发展新常态、推动经济高质量发展的重大部署，无论是推进精准扶贫脱贫的政策方略，还是要求在制度建设上补短板、强弱项，都来自于对“实事”清醒而全面的认识，对“求是”坚定而执着的追求，对“变”与“不变”的精准把握，体现出习近平总书记唯实务实的思想品格和直面矛盾的政治勇气。正是在“实践—认识—实践”持续深化的过程中，在指导我们认识世界、改造世界的过程中，党的创新理论彰显出巨大的现实解释力和实践引领力。\n" +
                "问题导向体现为苦干实干、攻坚克难的担当作为。习近平总书记一再强调，为官避事平生耻，矛盾越大、问题越多，越要攻坚克难、勇往直前，明知山有虎、偏向虎山行。党的十八大以来，习近平总书记以坚决坚毅的党性和人民性，以“为党和国家长远计、为子孙后代万世谋”的责任担当，推进一系列大事要事，攻克一系列难题难关。推动全面深化改革向纵深发展，持之以恒纠“四风”、刮骨疗毒反腐败，啃下贫中之贫“硬骨头”，打赢蓝天碧水净土保卫战等，都取得了前所未有的显著成效。心中有党、心中有民、心中有责、心中有戒，以“知行合一”“功成不必在我”的境界真抓实干，坚决抵制形式主义、官僚主义，我们党就一定能够逢山开路、遇水架桥，创造更多无愧于历史和人民的伟大业绩。\n" +
                "斗争精神，就是把握事物本质、增强斗争意识，以自觉的斗争实践打开新天地、夺取新胜利。斗争是事物发展和实践创新的实现形式，体现着矛盾运动的对立统一规律。发扬斗争精神就是承认矛盾的客观性、普遍性，适应社会发展、矛盾运动的内在趋势和要求，主动作为推动事业前进跃升。研读《习近平谈治国理政》，深切感到习近平总书记对实践进程和时代特征的深刻洞悉，对马克思主义认识论和实践论的自觉运用，深切感到深沉厚重的忧患意识、风雨不动的战略定力、顽强不屈的斗争意志。");

        answers.put("中国近现代史纲要", "中国近现代史纲要社会实践总结古人云:忘记历史就等于背叛。作为在校大学生更要了解中国近现代史。中国近代史是连接过去和现在的纽带, 起到承前启后的作用。重视历史的学习与研究、注意总结和汲取历史经验, 这是中国的一个优良传统。毛泽东讲过, “历史的经验值的注意” 。邓小平也非常重视用历史来教育人民, 教育干部, 教育青年。大学生是祖国未来的社会主义建设者 , 我深刻感觉的到了生活中那种翻天覆地的变化, 偶尔翻开小时候的照片,记忆着那时的生活,虽然感受不到父辈那时满目疮痍的生活环境, 但也感觉到了,那时中国的落后。\n" +
                "抚今追昔,历历在目。经过曲折的发展前进,走向欣欣向荣民富国强的社会。从历史课本我们学到了,在历史 60年前的今天,中国即将迎来她的新纪元, 中国走向了一个新的开始, 在毛主席宣布中华人民共和国中央人民政府成立的那刻起, 举国欢腾,到处欢天喜地,载歌载舞,那一天被所有中国人永记。新中国成立之初,那种百废待兴的中国面貌似乎只能从祖辈口中知道, 就像人们经常说的那样, 走向成功的路途中似乎永远不会和风平浪静有任何关系, 在黑暗中, 我们曾经迷茫过,也遭受这不同的灾难, 也许走了少弯路, 但是那些始终阻止不了中国前进的步伐, 这条沉睡在东方的巨龙没有丝毫停止过觉醒。历史不能忘却,通过实践,我学到了很多书本上学不到的东西。\n" +
                "作为祖国未来的建设者, 主力军, 我们大学生一定要牢记中国近代的历史及其基本规律经验,继承先辈们的优良传统,自觉地承担起时代赋予我们的历史使命。在新的起点上,我们充满了信心。当今世界科技的发展深入人心, 人们开始认识到了科技进步改变这人们的生活, 记得课本中学到新中国第一次成功发射那颗放有东方红歌曲的卫星,人们欢欣鼓舞,从那时的“ 两弹一星” 到现在神七成功发射,宇航员出仓并且顺利返回,我们不仅赞叹,为中国而骄傲。不仅仅在航天技术, 中国在发展工业和农业还有其他方面上也取得了巨大的进步, 让我感触最深刻的就是爸爸老是说要珍惜现在学习环境, 他们当时很可怜上学真是要翻山越岭, 寒冷的冬季却要坐在和现在相差甚远的教室学习。然而当今铁路, 和高速路在中国大地密密麻麻的交织着,并且在还在不断提速。还有西藏铁路,三峡工程,还以像“ 鸟巢” 等工程都无不体现中国的发展, 让全世界都刮目相看, 农民这个占有中国最大人口比重的人群生活也在不断的提高,一座小洋楼的建成,一个一个幸福的笑脸都映射了他们的幸福生活。从过去的殖民半殖民的中国, 到从 1949年新中国成立, 直到成立至今的 60年, 中国让世人看到了她的坚强, 从那时的战乱, 贫瘠, 落后, 到新中国成立后的不断探索尝试探索和缓慢发展,到现在的文明,民主,富强,人们生活水平的显著提高,都在向世人证明中国一个值得所有人尊重的国家。建国前我们经历了八年抗战, 三年内战, 中国土地上一片狼藉, 我们没有倒下去。建国之初, 经济发展缓慢, 我们在探索的道路上跌倒过, 但是我们从来都是坚强的爬了起来, 现在改革开放, 壮壮高楼拔地而起, 我国综合国力不断增强, 国际地位不断提高, 港澳的回归, 中华民族犹如钢铁长城一样坚不可摧, 面对雪灾, 地震, 无情的灾难我们团结一心, 挺起了坚实的脊梁骨。走过 60年,发生这太多讲不完的故事,那些让人们为之感动,传送,骄傲的故事伴随着中国走过了这 60年,相信祖国的未来也将会遇到各种的困难,但是中国不会退缩,中国人民不会害怕, 我们的祖国将会茁壮成长, 会更加富强, 我坚信, 人们都会为自己为中华儿女而自豪。");
        answers.put("毛泽东思想和中国特色社会主义理论体系概论", "本人热爱社会主义祖国，热爱中国共产党，认真学习和宣传马列主义、毛泽东思想和邓小平建设有中国特色的社会主义理论。充分利用课余时间，关心国家时事，积极参加各种培训，取得优异的成绩。面对激烈的竞争和教育的不断改革，我将继续努力，积极进取，刻苦钻研业务，努力提高自身业务水平。在工作上善于抓大事，抓主要矛盾，处理问题迅速果断，有较强的应对复杂局面和解决复杂矛盾的能力。\n" +
                "\n" +
                "随社会进步，国家富强，人民的幸福，时代发展，我们都亲眼所见，国家的强大来源于一个国家的综合国力的提升，源于中国亿万人民的勤劳，付出，努力用汗水铸造出中国奇迹。\n" +
                "作为一个中国人，做为新时代青年，知识的补充，实践的检验，能力的提高都必须需求我有更大的进步，我必须认识的力量，技术的力量。所以，要努力学习，提升自己素质。\n" +
                "\n" +
                "从报考学校后，一种从未见过的崭新的教育方式很是吸引人，这种学习方式让人没有任何压力，认真听从班主任安排，从网课学习到作业到考试，必须做到全弄懂，这样后面学起来才知道什么是重点。\n" +
                "一分钟记忆，把记忆和时间联系起来，这里还含有注意的习惯。一分钟写多少字，读多少字，记多少字，时间明确的时候，注意力一定好。学生的智力，注意力是最关键的。一定把学习任务和时间联系起来，通过一分钟注意、记忆来培养学习习惯。\n" +
                "遵守宪法的基本原则和相关法规的规定，不散布、传播谣言，不浏览、发布不良信息。弘扬优秀民族文化，遵守网络道德规范，诚实友好交流，不侮辱、欺诈和诽谤他人，不侵犯他人的合法权利。自觉维护公共信息安全，维护公共网络安全，不制作、传播计算机病毒，不非法侵入计算机信息系统，自觉维护网络秩序。正确运用网络资源，善于网上学习，不沉溺于虚拟时空，不在网上进行色情活动，保持身心健康。增强自我保护意识，不在网上公开个人资料，不随意约见网友，不参加无益身心健康的网络活动。\n" +
                "凡事预则利、不预则废。后进生毛病都出在计划性不强，让人家推着走，而优秀的学生长处就在于明白自己想要干什么。所以，我们就要培养同学们定计划的习惯。这也是非常要紧的一个习惯。大的目标够不到，赶快定小的目标。难题做不了，挑适合你的容易做的题去做。人生最可怕的就是大事做不来，小事不肯做，高不能成，低不肯就，上得去、下不来，富得起、穷不起。一个学生同时面对各学科教师，长短不齐、在所难免。老师适应学生，学生也要适应老师，不会稍不如意就埋怨环境，以后怎能适应社会。\n" +
                "作为一个中国人，做为新时代青年，知识的补充，实践的检验，能力的提高都必须需求我有更大的进步，我必须认识的力量，技术的力量。所以，要努力学习，提升自己素质。\n" +
                "作为一个中国人，做为新时代青年，知识的补充，实践的检验，能力的提高都必须需求我有更大的进步，我必须认识的力量，技术的力量。所以，要努力学习，提升自己素质。\n" +
                "根据自己实际，通过考试和讲评不断总结经验教训，吃一回亏，长一回智。\n");
        answers.put("习近平总书记教育重要论述研究", "\n" +
                "习近平总书记在学校思想政治理论课教师座谈会上指出，讲好新时代的思想政治理论课要“坚持理论性和实践性相统一”，所以思政课不仅要用马克思主义理论培养人，更要把思政小课堂同社会大课堂结合起来，通过实践教学深化实践的育人实效。基于此，思想道德与法治教研部于5月下午组织师生76人前往莆田市江春霖故居开展以“正心修身 廉洁齐家”为主题的社会实践活动。\n" +
                "在讲解员的解说下，同学们重点参观了铁面御史、莆阳御史、梅洋风情、半耕书室4个展区，通过翔实的资料、大量的实物、生动的故事，深刻体会了清代铁面御史、一代廉吏江春霖为国为民的节操情怀。江春霖为光绪二十年（公元1894年）进士，福建莆田人，官至新疆道，兼署辽沈、河南、四川、江南道监察御史。在其任职期间，一直悉心研究历代法治的正反经验，并注意个人的修身养性，作为御史，其访察吏治，不避权贵，前后六年，封奏六十多起， 庆亲王、袁世凯、徐世昌、孙宝琦等都曾为其弹劾对象，而在其被罢官归里后，虽厌谈政治，但却热心致力于公益事业，任修筑韩坝海堤、萩芦溪大桥等董事，造福乡里。\n" +
                "在参观过程中，同学们纷纷主动向讲解员提问，想要详细了解江春霖的诸多事迹与当时的时代背景，也对江春霖不畏权贵、嫉恶如仇的正直作风，热心公益、为民解难的家国情怀佩服不已。《礼记·大学》曰：“身修而后家齐；家齐而后国治；国治而后天下平。”思政教育要培养担当民族复兴大任的时代新人就更应注重树立学生的责任意识、民族意识、国家意识。而本次社会实践，以实地考察、树立榜样的方式鼓励学生主动加强自身修养，寓教于乐，让学生逐渐树立勇于担当、服务人民、奉献社会的思想意识，让奋斗的青春真正成为祖国前进的推力。\n");
        answers.put("思想道德与法治", "思想道德与法治社会实践\n" +
                "　　思想道德与法治社会实践\n" +
                "　　今年暑假，根据思想政治理论课的要求我跟着社会实践队来到大厂县进行了为期3天的实地普法平安宣传，这次充实而又难忘的社会实践经历给我带来了特别深刻的影响。\n" +
                "　　一、实践目的\n" +
                "　　实践让我走向科技应用，走出课堂。当前，我们缺少的主要不是知识，而是缺少将知识与实际相结合的能力。我们在课堂上所学的，与在实际当中遇到的是不尽相同的。其往往具有不具有明显的特征，这需要我们进行抽象概括才能解决各种问题。所以在大学期间我觉得多与社会接触，多了解自己所处的环境，多了解你将会面对的种种问题，对以后的发展和继续深造都是非常非常有益处的。\n" +
                "　　二、实践方式\n" +
                "　　采用“小分队式”社会实践，组员有3人\n" +
                "　　三、实践内容\n" +
                "　　(一)采取了以黑板报、广播、短信、网络等多种形式进行的法制宣传、平安宣传\n" +
                "　　我们在我们县城利用黑板报的形式向当地人民介绍有关婚姻法、财产继承等和实际生活紧密相关的法律知识以及有关平安的诗歌。同时我们总结了宣传标语：平安在心，普法在行。另外我们利用网上的村民信箱给澧浦镇村民写了一封普法平安宣传的信，取得了良好的效应。也在广播上进行法律知识三字经的宣传，受到当地村民的好评。\n" +
                "　　(二)我们来到幼儿园给小朋友们进行平安知识的宣讲\n" +
                "　　在实践期间，我们也注意到儿童这一相对弱势的群体，认为很有必要对其进行平安知识的教育。于是我们联系了一家当地的幼儿园，给小朋友们上课。我们教他们学认交通标识、知识问答，还进行了简单的儿歌朗诵比赛。不仅他们学到了知识，我们也体会到了当老师的感觉，专业理论知识更好的结合了实际，这也是不可多得的经历。\n" +
                "　　(三)配合区政法委等部门进行问卷调查\n" +
                "　　因为今年我们省正在进行平安城市创建活动，大厂也进行了具体的实施。现在活动开展差不多了，要进行群众满意度调查以发现还存在的问题和不足，从而更好的改善。正好这和我们实践队平安宣传相一致，加上我们大学生也有这样的经验，于是我们利用一天的时间在澧浦镇上进行了问卷调查。\n" +
                "　　(四)举行法律知识灯谜活动\n" +
                "　　法律条例是枯燥而乏味的，为了增加居民们的兴趣使他们主动且更好的了解法律知识，我们特地准备了法律知识灯谜活动。我们从专业书上找了一些题目，写在卡纸上，绑上漂亮的丝带，系在红绳子上，非常的漂亮。当天村民们也非常的热情，竞相回答问题，也得到了一份小礼物。一位老爷爷说这种活动应该经常举行，形式很好，这给了我们莫大的鼓励。\n" +
                "　　(五)进行流动模拟法庭的表演\n" +
                "　　我们给政府工作人员、村官们以及村民代表进行了一场模拟法庭的表演。我们精心准备了一场民庭和一场刑庭，都是生活中经常存在的案例。之后镇长说我们这样的表演很有实际意义，现在是法制社会，村民们更应该知道要通过法律的途径来解决问题。\n" +
                "　　(六)进行宣传模式的调研\n" +
                "　　因为前几天我们进行了群众满意度的调查，发现这的群众普遍反映宣传不够到位。于是我们觉得很有必要进行新农村宣传模式的调查，以发现存在的问题，从而出谋划策以找到可行的科学的宣传模式。\n" +
                "　　四、实践体会\n" +
                "　　“千里之行，始于足下”，这3天短暂而又充实的实践，我认为对我走向社会起到了一个桥梁的作用、过渡的作用，是人生的一段重要的经历，也是一个重要步骤，对将来走上工作岗位也有着很大帮助。\n" +
                "　　向他人虚心求教、遵守组织纪律和与人文明交往等一些做人处世的基本原则都要在实际生活中认真的贯彻，好的习惯也要在实际生活中不断培养。这一段时间所学到的经验和知识大多来自学长和领导的教导，这是我一生中的一笔宝贵财富。这次实践也让我深刻了解到，在工作中和同事保持良好的关系是很重要的。做事首先要学做人，要明白做人的道理，如何与人相处是现代社会的做人的一个最基本的问题。对于自己这样一个即将步入社会的人来说，需要学习的东西很多，他们就是的老师，正所谓“三人行，必有我师”，我可以向他们学习很多知识和道理。\n" +
                "　　大学是一个教育我、培养我、磨练我的圣地，我以我能在此生活而倍感荣幸。而实践是学生接触社会，了解社会，服务社会，运用所学知识实践自我的途径，亲身实践，而不是闭门造车。实现了从理论到实践再到理论的飞跃。增强了认识问题，分析问题，解决问题的能力。为认识社会，了解社会，步入社会打下了良好的基础。在经历实践后，我发现自己的专业知识还很匮乏，综合能力还有待提升。交际能力、表达能力、写作能力等的培养非常的重要。同时还需在以后的学习中用知识武装自己，用书本充实自己，为以后服务社会打下更坚固的基础!\n" +
                "　　10天的实践，我感觉自己长大不少，终于认识到校园其实还是很小的，虽然它占地千余亩，但它仅仅是社会的一小部分，仅仅是一个引导人的机构。在学校，我们学的是理论，讲的是道德文化，而走出校门，步入社会，我们学的便是素质与能力，讲的便是气质与内涵，但两者还是相通的，为的都是顺利进入激烈的社会竞争，求的都是出类拔萃。所以从现在开始我就应该不断充实自己的思想文化，提高自身的素质修养，更应该不断增强各方面的实践能力，以适应竞争激烈的社会。\n" +
                "　　思想道德与法治社会实践\n" +
                "　　  一、道德的修养与个人的态度。 \n" +
                "(一)、大学生是未来国家的接班人，大学生的一举一动都受到广泛的关注，所以作为一名新世纪的大学生不仅要有过硬的专业知识，特别要有社会道德。道德的修养需要全民的积极参与，要有积极乐观的态度。道德对社会经济关系的反映不是消极被动的，而是以能动的方式来把握世界，引导和规范人们的社会实践活动。人们正是通过对道德来把握世界，来感受世界关系的脉动识别社会发展的方向，确定自身发展与社会和自然的关系，并形成自己关于责任和义务的观念，确立自己的道德理想，自觉地扬善抑恶，明辨荣辱、选择高尚、弃绝卑下，保持社会与个人的健康发展。\n" +
                "(二)、大学生就要自觉得修养自己的道德素质，好的道德素质体现了大学的自身的修养，大学生应该要树立好诚信道德，好的诚信道德品质、诚信行为，关系到了人际关系，关系到良好的社会的形成，关系到社会主义和谐社会道德建设，在一定意义上关系到了中华民族的未来，大学生要肩负起全面建设小康社会和社会主义现代化建设的历史使命，就必须要自觉地坚定诚信建设，把诚信作为高尚的人生追求、优良的行为品质、立身处世的准则。\n" +
                "　　 二、诚信是大学生树立理想信念的基础。\n" +
                "　　一个没有良好的诚信品德的人，不可能有坚定的理想信念。有了坚定的信念才能更好的为社会做出贡献，只有实现自己的人生理想，才是对社会做出最好的贡献，一个平时不讲信用的人，他不可能为了崇高的理想信念做出牺牲，也不可能实现人生的理想信念，大学生只有养成良好的诚实守信的道德品质，才能真正的忠诚于国家和民族的事业，坚持在共产党的领导下，走社会主义社会的正确道路，更是坚持走具有中国特色社会主义的道路，为了中国的经济发展，为了全中国都能过上幸福的生活而努力奋斗，为了实现中华民族的伟大复兴终生奋斗的崇高理想。 \n");

        answers.put("马克思主义基本原理","试卷代号：1395\n" +
                "国家开放大学2022年春季学期期末统一考试\n" +
                "马克思主义基本原理    试题（开卷）\n" +
                "\n" +
                "论述题：\n" +
                "1937年7月，毛泽东同志在《实践论》中指出：“通过实践而发现真理，又通过实践而证实真理和发展真理。从感性认识而能动地发展到理性认识，又从理性认识而能动地指导革命实践，改造主观世界和客观世界。实践、认识、再实践、再认识，这种形式，循环往复以至无穷，而实践和认识之每一循环的内容，都比较地进到了高一级的程度。这就是辩证唯物论的全部认识论，这就是辩证唯物论的知行统一观。”\n" +
                "结合实际，请回答下面的问题：\n" +
                "1.阐述实践在认识活动中的作用？（50分）\n" +
                "2.如何理解“实践与认识的辩证运动，是一个由实践到认识、再实践、再认识，循环往复以至无穷的辩证发展过程”？（50分）\n" +
                "1.阐述实践在认识活动中的作用？（50分）答：实践是认识的基础，它对认识的决定作用主要表现在一下四个方面:第一:实践产生了认识的需要。社会实践的需要始终是人类认识发展的强大动力。\n" +
                "第二:实践为认识提供了可能。人类实践活动提出的问题归根结底只能依靠和通过实践来解决。实践创造出必要的物质条件和手段，使人的认识能够不断深入。\n" +
                "第三:实践使认识得以产生和发展。我们必须充分重视实践经验，并加以总结提高，推动认识不断发展。\n" +
                "总之，人的认识是从实践产生，为实践服务，随实践发展，并受实践检验的。认识依赖于实践，离开实践的认识是根本不可能。认识和实践总是相互作用的，认识反映客观事物本质和规律性的理性认识，对实践有着巨大的指导作用。\n" +
                "2.如何理解“实践与认识的辩证运动，是一个由实践到认识、再实践、再认识，循环往复以至无穷的辩证发展过程”？（50分）答：实践,认识.再实践,再认识.循环往复心至无穷.这就是认识的辩证运动过程，认识发展的过程就是主观和客观的矛盾展开的过程,但是,主观和客观的矛盾只有通过认识和实践的矛盾运动才能够具体化,才能够表现出来,才能够真正展开.这也就是说,主观和客观的矛盾是在实践中产生和解决的.客观实践是具体的、历史的,因而主观对客观的认识也是具体的、历史的.主观与客观的统一,认识和实践的统一,都是具体的历史的统一.所谓“具体的历史的统一”,就是说,人们的认识和客观过程的符合是在一定的具体历史条件下的符合,是在社会实践发展的一定的具体历史阶段上的符合.人们的认识超越于客观实践的发展阶段或落后于客观实践的发展阶段,都是离开了主观和客观、认识和实践的具体的历史的统一.当着客观过程向前推移,具体条件发生重大变化,实践发展到新的历史阶段的时候,如果认识仍然停留在原来的阶段上,那么,认识就脱离了客观实践在新阶段上的具体的历史特点,就会使落后于实际。\n" +
                "\n");

        answers.put("政治经济学","答\n" +
                "一. 什么是效率和公平？\n" +
                "1. 效率是指人的活动的效率。人的活动是主体借助一定的手段实现既定目标的过程。一般而言，效率就是人的活动所达到的目的和从事这种活动所运用的手段之间的比例关系。人类最基本的活动是生产活动，因此，我们所说的效率主要是指生产活动的效率。具体地说，效率就是人的生产活动的产出与投入之间的比例关系：成本不变，产出越大，效率越高；同样，产出不变，成本越低，效率越高。\n" +
                "2.何谓公平？理论界有这样几种观点：第一，收入差距大小适宜的公平观。这种观点把收入差距大小作为判断社会分配公平与否的标准，在当前西方理论界比较流行。这是以结果的均等作为判断公平与否的标准，而没有考虑收入的渠道和手段。第二，按劳分配的公平观。这种公平观默认“不同等的个人天赋”所形成的不同收入的“天然特权”。要求废除分配上的平均主义，切实贯彻按劳分配原则，实行多劳多得、少劳少得、有劳动能力不劳动者不得食的原则，这种原则摒弃了平均主义的分配体制，认同劳动者通过诚实劳动和努力可以得到更多回报，体现了激励原则。第三，机会均等的公平观。这种公平观强调的是在市场竞争中给每一个人提供均等的机会。第四，收入分配中的公平是分配尺度、分配过程、分配规则的公平，而不是单纯的结果公平。对个人来说，即使参与分配的机会均等、公平竞争，而实际分配的结果也可能是不均等的。\n" +
                "二、洛伦兹曲线和基尼系数的含义\n" +
                "1、洛伦兹曲线（Lorenz curve）,是美国统计学家M.洛伦兹（M.O.Lorenz）提出的，是用以反映国民收入分配平均程度的一种曲线。洛伦兹曲线弯曲程度越大，收入分配越不平等；反之，洛伦兹曲线弯曲程度越小，收入分配越平等。\n" +
                "2、基尼系数（Gini voefficient）是意大利统计学家基尼根据洛伦兹曲线提出的一个衡量分配不平等程度的指标。实际基尼系数总是在零和1之间，其数值越小，表明收入分配越平均；反之，则越不平均。\n" +
                "三、吴敬琏作为我国著名经济学家，你是否同意他的上述观点？请说明理由。\n" +
                "我个人同意吴敬琏的观点。吴建链的观点认为：收入差距的不正常扩大，归咎于建立市场经济为目标的改革和80年代提出的“效率优先，兼顾公平”的分配方针是缺乏依据，有些片面。我认为，这种收入差距的扩大，是一种自然规律的作用，是经济发展中不可调和的产物。一国经济的发展同样遵循一定的规律，收入的的差距扩大，正是公平作用的结果。在机会平等条件下，有能力的人，通过发挥他们的聪明才智，取得了良好收入的，有利于效率的提高。从进化论的观点，体现了公平竞争，优胜劣汰的自然规律。从经济学的观点来说，也体现了资源的充分利用。在机会平等条件下的结果不平等，吴建链认为应做好全民最低生活保障和社会保障。经济的发展是建立在社会良好的政治环境和良好的社会环境之下，离开了上述的保证，那是空谈经济。\n" +
                "四、简述这我收入分配的实际情况（城乡、居民、地区、待业等），分析产生分配不公的原因。\n" +
                "1.现阶段收入分配的总体状况有四个e79fa5e98193e59b9ee7ad9431333262356138显著特点；其一，居民收入普遍增加，各个阶层群体都获得了改革带来的实惠，生活水平显著提高；其二，城乡、地区、行业之间及其内部几乎毫无例外地存在着收入差距；其三，在政府部门和事业单位内又普遍地存在着严重的平均主义；其四，收入分配秩序混乱，非常态收入特别突出。进一步衡量社会收入分配的不平等程度常常运用相对收入不平等分析方法，如“洛伦兹曲线”与“基尼系数”。 改革开放以来,我国城镇内部的基尼系数从1978年的0.16上升到1995年的0.28,尚处于合理区间,说明尽管这些年城市有一部分暴富,但大多数居民的收入差距尚不显著。农村内部的基尼系数从1978年的0.21上升到1995年的0.34,表明农村由于各个家庭成为独立经济主体,收入分配差距比城市要高,全国基尼系数从1978年的0.317上升到1995年的0.445,已达到相当高的程度,且比城市农村基尼系数要高出许多,显示出城乡差距目前仍较大,且改革开放以来,这一差距是扩大了,更为重要的是,农村、城市、全国的基尼系数都呈扩大趋势。\n" +
                "2.分配不公产生的原因\n" +
                "（1）、政策上的误区\n" +
                "我国城乡差距之所以显著,这与政府长期的认识和采用的政策有较大的关系。在较长的一段时间里,为了支撑工业的发展,国家采用人为的方式使资源从农业向工业转移。同时政府不允许农民“进城”,认为如果允许农民“进城”的话,可能导致现有城市规模急剧膨胀,引发许多社会问题,而且,政府要给城市居民各种补贴,大量农民“进城”,政府将不堪负担。事实上,这种政策将城乡割裂开来,导致大量的劳力挤在土地上谋生,使农业生产效率低下,反过来又束缚了工业的发展。当前农村消费市场启动不了就说明了这一问题。其它国家发展的实践告诉我们,现代化的过程也是城市化的过程,政府如果限制城市化,经济将永远停留在二元结构上。\n" +
                "（2）、制度转型中的不合理收入。政府鼓励一部分人先富起来的政策是对的,也极大的激励了生产力的发展,问题在于许多人似乎忘了先富的前提条件是“诚实劳动和合法经营”。1984年,我国开始对国有企业进行改革,但同时伴生的竟是国有资产流失,损了国家而肥了一小撮“内部人”,特别是股份制改造,在一些地方竟成了社会主义公有制的最后一次“免费午餐”。这些年,因为监督机制缺位,甚至是权力的介入,产生大量黑色收入,导致一部分人暴富,为广大人民深恶痛绝。另外,还有一些介于合法与非法之间的“灰色收入”。西方把这种因享有特权而获得的额外利益的现象称为寻租行为。寻租泛滥,很多人产生严重的不平等。这些不合理收入,使一些人站在较高的起点上,在新一轮的角逐中,进一步扩大了贫富差距。\n" +
                "（3）、改革中的一些正常因素也加快了收入差距的扩大。分配体制的改革,首先要破除的就是平均主义,这必然会带来收入差距的变化。尤其是要建立市场经济,每个经济主体都根据在市场中的贡献获取相应的报酬,无论是按劳分配还是按生产要素分配,各主体的市场参与能力不同,所得的收入当然有区别。\n" +
                "3.减少分配不公的建议\n" +
                "（1）大力发展生产力，繁荣社会主义经济。这是缩小偏大的基尼系数的前提和基础。不断解放和发展生产力，加快经济发展，把“蛋糕”做的越来越大，不断增强国家经济实力。只有这样，才能保证在人民生活水平普遍不断提高的基础上，为逐步缩小收入差距奠定日益雄厚的物质基础。\n" +
                "（2）加快农村经济的发展，不断增加农民的收入。这是缩小偏大的基尼系数的核心内容。我国目前基尼系数偏大的一个重要原因是农村居民与城镇居民的收入差距偏大。当前我国政府向农业倾斜的各项政策是缩小偏大的基尼系数的有效政策。\n" +
                "（3）加强宏观调控，实现区域经济协调发展。这是缩小偏大的基尼系数的重要途径。地区差距是形成收入差距的一个重要方面，缩小地区差距的关键是实现区域经济的协调发展，区域经济协调发展的关键是优势互补、统筹兼顾。\n" +
                "（4）规范收入分配关系，调节收入差距。这是缩小偏大的基尼系数的主渠道。\n" +
                "五、在经济发展过程中，如何处理效率与公平？\n" +
                "效率是公平的物质前提。另一方面，公平是提高效率的保证。效率与公平分别强调不同的方面，二者有存在矛盾。\n" +
                "要正确处理效率与公平，社会主义市场经济要体现“效率优先，兼顾公平”的原则。\n" +
                "兼顾效率与公平：1要允许和鼓励一部分地区和个人通过诚实劳动和合法经营先富起来，带动其他地区和个人致富，最终达到共同富裕。2既要反对平均主义，又要防止收入差距悬殊；既要落实分配政策，又要提倡奉献精神；在鼓励人们创业致富的同时，倡导回报社会和先富帮后富。3必须正确处理初次分配注重效率与再分配注重公平的关系。");


        // 进入课程首页
//        try {
//            for (WebElement we : driver.findElements(By.cssSelector("div[class='ouchnPc_index_course_div']"))) {
//                String textContent = we.getText();
//                System.err.println("text:" + textContent);
//                if (textContent.contains(subjectName)) {
//                    we.findElement(By.tagName("a")).click();
//                    Thread.sleep(3000);
//                    break;
//                }
//            }
//            Util.switchToLast(driver);
//        } catch (Exception e) {
//            e.printStackTrace();
//        }


        // TODO 现在开始获取具体课程所有的答题链接：：


        // https://lms.ouchn.cn/course/10000001767/learning-activity/full-screen#/10000213698


        String completeInfoFilePath = "libs//lmsAnswerInfo//" + subjectName + "//" + userName + "-practice.txt";
        File completeInfoFile = new File(completeInfoFilePath);
        List<CompleteInfo> completeInfoList = Lists.newArrayList();
        try {
            InputStream completeInfoStream = new FileInputStream(completeInfoFile);
            String completeInfoStr = IOUtils.toString(completeInfoStream, "UTF-8");
            completeInfoList = JSONObject.parseArray(completeInfoStr, CompleteInfo.class);
        } catch (Exception e) {
        }


        for (String url : urlTasks) {
            if(hasCompleteTasks.contains(url)){
                continue;
            }
            try {
                // 排除不计入考核的作业

                driver.get(url);
                // Thread.sleep(8000);
                Thread.sleep(10000);
                // 点击我的作业
                driver.findElement(By.cssSelector("span[class='tab-title submission-tab left']")).click();
                Thread.sleep(1000);

                // TODO 这里判断是否提交了作业
                boolean isSubmit = false;

                for (WebElement spanWe : driver.findElements(By.cssSelector("span[class^='left submission-score error-tag ng-scope']"))) {
                    if ("未评分".equals(spanWe.getText())) {
                        CompleteInfo completeInfo = new CompleteInfo();
                        completeInfo.setHomeworkUrl(url);
                        completeInfo.setComplete(true);
                        completeInfoList.add(completeInfo);
                        log.info("该课程已经评分啦：{}", subjectName);
                        isSubmit = true;
                        break;
                    }
                }


                if (isSubmit) {
                    continue;
                }


                // 点击写作业
                for (WebElement spanWe : driver.findElements(By.cssSelector("span[class='ng-scope']"))) {
                    if (spanWe.getText().contains("写作业")) {
                        spanWe.click();
                        Thread.sleep(2000);
                        break;
                    }
                }

                Thread.sleep(2000);

                // 找到提交大作业的主界面
                //  WebElement studentWorkAreaWe = driver.findElement(By.cssSelector("div[class='main-area multiple-choice-homework-student-submission']"));
                //   WebElement studentWorkAreaWe = driver.findElement(By.cssSelector("div[class='main-area']"));
                WebElement studentWorkAreaWe = driver.findElement(By.id("submit-popup"));

                // 先点击聚焦 然后发送作业....
                studentWorkAreaWe.findElement(By.cssSelector("div[class='simditor']")).click();
                Thread.sleep(2000);
                String homeWorkAnswers = answers.get(subjectName);
                if (Strings.isNullOrEmpty(homeWorkAnswers)) {
                    continue;
                }
                studentWorkAreaWe.findElement(By.cssSelector("div[class='simditor-body needsclick']")).sendKeys(homeWorkAnswers);
                Thread.sleep(2000);
                // 交付作业
                for (WebElement btnWe : driver.findElements(By.tagName("button"))) {
                    if (btnWe.getText().contains("交付作业")) {
                        btnWe.click();
                        Thread.sleep(2000);
                        break;
                    }
                }

            } catch (Exception e) {
                e.printStackTrace();
            }

        }
        FileUtils.write(completeInfoFile, JSONObject.toJSONString(completeInfoList, SerializerFeature.PrettyFormat), "utf-8");
        try {
            driver.close();
            driver.quit();
        } catch (Exception e1) {

        }
    }


}
